The network controller is a device that is used to support network-wide services for a network that includes multiple network elements. A network-wide service is a service that is used by two or more network elements. For example, the network-wide service can be a service that gathers known Media Access Control (MAC) addresses and assembles these addresses into a global MAC address database. This global MAC address database can be used to support a VxLAN controller service.
To support these network-wide services, the network controller receives and stores state information from these network elements. The state information is information that each network element gathers or has configured, such as forwarding information, security information, or other information that is configured on the network element or the network element gathers while running. The network controller further makes this state information available to the services running on the network controller. The services access the state information to build information to support the corresponding service. Each of the services stores this information in a non-persistent network controller database stored on the network controller. Information on the network controller database is pushed out to the network elements, where each network element stores this information in a local network element database.
A problem occurs when the network controller reboots and loses the network controller database because each of the network elements will periodically synchronize the corresponding network element database with the network controller database. If a network element attempts to synchronize its database within an empty network controller database, the network element will empty its own database. This empty network element database can cause network disruptions, because the state information stored in the network element database will no longer be there.